#! /usr/bin/env bash
#
#  script to build gems for all relevant platforms
#
set -o errexit
set -o nounset
set -x

rm -rf tmp pkg gems
mkdir -p gems

# prelude: let's check that things work
bundle update
bundle package

bundle exec rake clean clobber
bundle exec rake compile
bundle exec rake test
bundle exec rake test:bench

# MRI et al (standard gem)
bundle exec rake clean clobber
bundle exec rake gem
cp -v pkg/nokogiri*.gem gems

# jruby
bundle exec rake clean clobber
bundle exec rake gem:jruby
cp -v pkg/nokogiri-*java*.gem gems

# precompiled native gems ("fat binary")
bundle update
bundle package

bundle exec rake clean clobber
bundle exec rake gem:windows
cp -v pkg/nokogiri-*mingw*.gem gems

bundle exec rake clean clobber
bundle exec rake gem:linux
cp -v pkg/nokogiri-*linux*.gem gems

bundle exec rake clean clobber
bundle exec rake gem:darwin
cp -v pkg/nokogiri-*darwin*.gem gems

# test those gem files!
$(dirname $0)/test-gem-set gems/*.gem

pushd gems
  ls *.gem | sort | xargs sha256sum
popd
